A middlebox is a network appliance that manipulates Internet traffic by optimizing data flow across the network. Middleboxes can be configured as wide area network (“WAN”) optimizers and can be deployed in pairs across two geographically separated locations to optimize data traffic between the two middleboxes. Middleboxes can proxy the TCP connections by monitoring the transmission control protocol (TCP) connection on a first link (LAN) and forming a new TCP connection (the proxied TCP connection) on second link (WAN) based on the connection on the first link. Middleboxes can be connected through a single link or multiple links such as a leased line link and a broadband link. Middleboxes use TCP congestion avoidance algorithms, commonly called “TCP flavors,” to optimize TCP data flows as part of a quality of service (“QoS”) scheme. Common examples of TCP avoidance flavors can include algorithms such as TCP Vegas, TCP Reno, TCP NewReno, TCP Hybla, TCP BIC, and TCP CUBIC, among others. Each TCP congestion avoidance flavor is suited for optimizing data flows originating from or received by particular operating systems, link types, and/or other network characteristics.
Some TCP flavors improve quality of service across TCP connections by using congestion control and congestion avoidance techniques that sometimes include TCP traffic prioritization. Traffic prioritization, a traffic shaping technique for Quality of Service (QoS), can ensure that more packets from high priority (P1) traffic are pushed into the network for increased throughput. Thus when there are enough data, to be sent from both P1 and non-high priority (non-P1) traffic, the prioritization functionality of QoS can push more packets from P1 traffic into the network pipe thereby delivering better throughput and providing enhanced QoS for P1 traffic. For example, using conventional methods of prioritization, if traffic prioritization module dictates 3:1 ratio for P1 and non-P1 traffic, we could expect approximately 75% of the packets occupying the leased network pipe to be of P1 traffic.
One down side of conventional prioritization techniques is when the overall traffic on the network link becomes scarce, the QoS module, which works with the traffic prioritization module, does not receive enough P1 traffic to induce drastic P1 throughput increases regarding the overall traffic volume. Using conventional traffic prioritization techniques, without the TCP controller being aware of the number of P1 packets, P1 traffic may be constrained to a predefined proportion of the TCP flow based on the overall low traffic volume, when greater P1 throughput could he achieved by enhanced P1 traffic management.